package array.removeDuplicates;
/**
 * @Date 2020/04/07
 * @author 王光浩
 * @Thinking 使用快慢指针（还可以使用暴力法）
 * @Analysis 时间复杂度O（n），空间复杂度O（1）
 */
public class MyMethodOne {
	public int removeDuplicates(int[] nums) {
		if(nums.length<=2)return nums.length;
		int first=-1; //慢指针
		int second=0;
		int now=nums[0];
		int count=0;  //统计当前元素出现次数
		while(second<nums.length) {
			//统计当前元素出现的次数
			if(nums[second]==now)count++;
			else {
				now=nums[second];
				count=1;
			}
			//判断是否需要移动元素
			if(count>2) {
				if(first==-1)first=second;
			}
			else {
				if(first!=-1)nums[first++]=nums[second];
			}
			second++;
		}
		if(first==-1)first=nums.length;
		return first;
    }
}
